home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
data
/
fapx
/
fapxlmes.plp
< prev
next >
Wrap
Text File
|
1994-11-16
|
9KB
|
389 lines
/* 指定された会議室の未読を全部読む */
%MESREAD{
[boadlist]
case (boadlist<>{},
{Yes},
{
display(fname|{の未読を読みます\n});
type({MES\n});
Where:={forum/}|@nth(Where,2,{/})|{/mes};
loop (
{
wait (Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},
{-現在会議室には登録されていません-},
{
WAITABORT(Wtime2);
SNDMSG({okasi_f.snd});
display({会議室登録を確認してください\n});
},
{現在、サービスは大変混雑しています。},
{
WAITABORT(Wtime2);
SNDMSG({okasi_f.snd});
display({混雑のため次の処理に移ります\n});
},
{\n>},
{case (boadlist={MES}||boadlist={mes},{Yes},{},{No},
{
%limit @case(LIMIT,{},{im({})},,{im({ LIMIT:}|LIMIT)});
type({MREAD}|limit|{ ROOM:}|boadlist);type({\n});
loop ({
wait (,,
{ }|@xc({08})|CRLF|{>},
{flag0:={No};im({No})},
{ }|@xc({08})|CRLF|
{電子会議 (1:発言 改行のみ: 読む)}|
{ 通常モード}|CRLF|{>},
{flag0:={No};im({No})},
{◆現在未読の発言はありません◆\n>},
{
%a @laststr(128);
wait(1);
%b @laststr(128);
case (a=b,
{Yes},{flag0:={Yes};im({No})},
{No},{im({Yes})}
);
},
{◆該当する会議室がありません◆\n>},
{
%a @laststr(128);
wait(1);
%b @laststr(128);
case (a=b,
{Yes},{flag0:={Yes};im({No})},
{No},{im({Yes})}
);
},
{◆あと 2分間入力がないと回線が切断}|
{されます◆\n}|BELL|{\n},
{
flag0:={No};
%a @laststr(128);
wait(1);
%b @laststr(128);
im(a<>b)
},
{ -\n>},
{
flag0:={No};
%a @laststr(128);
wait(1);
%b @laststr(128);
im(a<>b)
});
});
} )
},
{\n},
{
write (TEMP2|{mesl.tmp},/* 会議室名一覧出力 */
@tail(@body(@laststr(90),,{\n}),{\n})|CRLF);
im({Yes})
})
} )
});
};
/* 未読タイトル一覧表を表示 RTN(FORUM) */
%RTNFRM {
[boadlist]
var rtnboad [55];
%readRTN{
var RTNDIR [64];
var NewMes [1];
NewMes:=0;
dispoff(!DEBUG);
display({\nFORUM:}|fname|{ MES:}|rtnno|{\n}|
{\nmltitle=『}|mltitle|{』\n}|
{会議室名:}|MesTitle|{\n}|
{発言数=}|ut|{個\n}|
{未読数=}|rc|{個\n});
dispoff({No});
case (ut - rc = 0,
{Yes},
{display({\n新規会議室として処理します。m(_ _)m\n});
NewMes:=1});
case (rc>0,
{Yes},
{
case(skim={},{No},{PAUSE(fname)});
footnote(fname|{の未読タイトルリストを}|
{ダウンロードしています});
display({\n}|fname|{の未読タイトルリストを}|
{ダウンロードしています\n});
%errmsg {
SNDMSG({okasi_f.snd});
display(rtnno|{番会議室は未読読み指定と重複}|
{している可能性があります。\n});
display({重複してない場合は、詳細をご報告}|
{下さい。m(__)mペコリ\n});
};
%endrtn {
wait(,,{改行のみ: 読む) 通常モード\n>},,
{改行のみ: 読む) ペアレントモード\n>});
type({RC MAX\n});
write(RTNDIR|{\}|RTNFILE,
{ *** 作成 = }|@daylong|{ ***\n});
};
%RTNFILE {MES}|@ZERO(rtnno,2)|{.RTN};
case (@dir2(LOG)=@dir2(CATLOG)||
(LOGmode={forum}&&COMPRESS={No}),
{Yes},
{RTNDIR:=LOG2|fname|{\RTN}},
{No},
{RTNDIR:=LOG2|{RTN\}|fname},
);
case (@filechk(RTNDIR|{\}|RTNFILE),
{Yes},
{
type({RTN\n});
wait(Wtime2,{AbortOff({ホストが重いよぉ~})},
{ 題名\n},
{
receive(RTNDIR|{\}|RTNFILE);
wait(,,{\n>},{stoprec;type({\n})});
endrtn;
},
{◆現在未読の発言はありません◆},
{errmsg});
},
{No},
{
mkdir2(RTNDIR);
%fhd {FORUM:}|fname;
write(RTNDIR|{\}|RTNFILE,
fhd|{ MES:}|rtnno|@hyp(fhd,rtnno)|
{--------------------------------}|
{---- List by FAPX\n}|FTITLE|
{ 会議室:}|MesTitle|CRLF);
type({RTN\n});
WAITCHAR(Wtime2,{RTN\n},
{receive(RTNDIR|{\}|RTNFILE)});
wait(,,{\n>},{stoprec;type({\n});endrtn},
{◆現在未読の発言はありません◆},
{stoprec;delfile(RTNDIR|{\}|RTNFILE);
errmsg;
});
});
wait(,,{改行のみ: 読む) 通常モード\n>},,
{改行のみ: 読む) ペアレントモード\n>});
case(skim={},{No},{RESUME(fname);skmsg});
});
};
case ( boadlist = {ALL} || boadlist = {all},
{Yes},
{
rtnboad:={};
type({MES\n});
Where:={forum/}|@nth(Where,2,{/})|{/mes};
loop ({
wait (Wtime2,{AbortOff(
{\nホストの反応が鈍いよぉ~\n})},
{\n>},{im({No})},
{\n},
{ /* 会議室名一覧出力 */
%mli @tail(@body(@laststr(90),,{\n}),{\n});
write(TEMP2|{mesl.tmp},mli|CRLF);
/* ALL用変数代入 */
%mx @getchar(mli,1,2)+1-1;
case(@getchar(mli,17,4),
{) },{rtnboad:=rtnboad|{,}|mx});
im({Yes});
});
});
rtnboad:=@getchar(rtnboad,2)
},
{No},{rtnboad:=boadlist}
);
case(DEBUG,{Yes},{display({\nrtnboad=}|rtnboad|{\n})});
var pflag [3]; /* SET PAUSE ON フラグ */
%mesp TEMP2|{mesl.tmp};
%rctl UP2|{fapxrtn.ctl};
var MesTitle [50];
var ut [5];
var rc [4];
%skmsg {
display({指定発言の自動ダウンロードを開始します\n});
footnote({指定発言の自動ダウンロードをしています});
};
%deftit { /*変数定義*/
case (@filechk(mesp),
{Yes},
{
%md @head(@body(@read(mesp),{\n}|
@SPP(rtnno,2,)|{ }),{\n});
MesTitle:=@getchar(md,24);
ut:=@getchar(md,1,5)+1-1;
rc:=@getchar(md,8,4)+1-1;
},
{No},
{MesTitle:=@body(mltitle,{議室}|@SPP(rtnno,2,)|
{ },{ 発言数 :});
ut:=@head(@body(mltitle,{発言数 :}),{ 未読 });
rc:=@head(@body(mltitle,{未読 :}),{-\n});
});
case(@exist({,}|mes|{,},{,}|rtnno|{,}),{Yes},
{rc:=0;
SNDMSG({okasi_f.snd});
display(rtnno|{番会議室は未読読み指定と重複}|
{していますので、RTN取得指定から除外します。\n});
});
};
loop ({/* RTN及び指定発言のダウンロード */
%rtnno @head(rtnboad,{,});
case (rtnno,
{},{im({No})},
,
{
deftit;
%rtk {forum=}|fname|{;mes=}|rtnno|{;rtn=};
%skim @case (@filechk(rctl),
{Yes},
{
%rs @head(@body(@read(rctl),rtk),{\n});
case ((rs<>{}&& DNT<>{No}&&
((@filechk(mesp)={Yes}&&rc>0)||
@filechk(mesp)={No})),
{Yes},
{rewrite;im(rs)},
{No},{im({})}
);
},
{No},{im({})}
);
dispoff(!DEBUG);
display({指定された発言番号:#}|skim|{x\n});
dispoff({No});
case ((@filechk(mesp)={Yes}&&rc>0)||
@filechk(mesp)={No},
{Yes},
{
case (skim,{},{PAUSE(fname)},
,
{
case (pflag={Yes},
{No},
{
type({SET PAUSE OFF\n});
WAITABORT(Wtime2);
pflag:={Yes};
});
});
case(@GO({forum/}|fname|{/mes/}|rtnno)<>{No},
{Yes},
{
deftit;readRTN;
case(skim<>{},{Yes},
{FDwn1;
loop ({
%rs @head(@body(@read
(rctl),rtk),{\n});
case(rs,{},{im({No})},,
{rewrite;%skim rs;
case(DEBUG,{Yes},
{display({指定された}|
{発言番号:#}|
skim|{y\n})});
FDwn1;im({Yes})});
});
})
});
case(skim,{},{RESUME(fname)})
});
rtnboad:=@body(rtnboad,{,});
im({Yes});
});
});
case (@filechk(rctl),
{Yes},
{
%rtk {forum=}|fname|{;mes=};
loop ({/* 指定発言のダウンロード */
%rs @head(@body(@read(rctl),rtk),{\n});
case (rs<>{}&&DNT<>{No},
{No},{im({No})},
{Yes},
{
rewrite;
%rtnno @head(rs,{;});
%skim @tail(rs,{;rtn=});
case (pflag={Yes},
{No},
{
skmsg;
type({SET PAUSE OFF\n});
WAITABORT(Wtime2);
pflag:={Yes};
});
case(@GO({forum/}|fname|{/mes/}|rtnno)<>{No},
{Yes},{deftit;FDwn1});
im({Yes})
});
});
});
case (@fileleng(rctl),{0},
{
delfile(rctl);
copyfile(UP2|{fapxrtn.rsv},UP2|{fapxrtn.bak});
delfile(UP2|{fapxrtn.rsv});
});
};
%FDwn1 {
%PrmptChk{
wait (,,
{入力して下さい◆\n}|
{電子会議 (1:発言 改行のみ: 読む) 通常モード\n>},
{im({Error})},
{入力して下さい◆\n電子会議 }|
{(1:発言 改行のみ: 読む) ペアレントモード\n>},
{im({Error})},
{入力して下さい◆\n}|
{電子会議 (改行のみ: 読む) 通常モード\n>},
{im({Error})},
{入力して下さい◆\n}|
{電子会議 (改行のみ: 読む) ペアレントモード\n>},
{im({Error})},
{\n電子会議 (1:発言 改行のみ: 読む) 通常モード\n>},
{im({Ok})},
{\n電子会議 (1:発言 改行のみ: 読む)}|
{ ペアレントモード\n>},
{im({Ok})},
{\n電子会議 (1:発言 2:コメントを読む }|
{改行のみ: 読む) 通常モード\n>},
{im({Ok})},
{\n電子会議 (改行のみ: 読む) 通常モード\n>},
{im({Ok})},
{\n電子会議 (改行のみ: 読む) ペアレントモード\n>},
{im({Ok})},
{\n電子会議 (1:コメントを読む 改行のみ: 読む)}|
{ 通常モード\n>},
{im({Ok})}
);
};
case (@TypeNum(ut,{999}),
{OK},
{
case (@PrmptChk,
{Error},
{
case (@TypeNum(ut,{512}),
{OK},
{
case (@PrmptChk,
{Error},
{display(
{\n作動が一寸おかしいです。\n})},
{Ok},{flag0:={No};/*正常作動*/}
);
});
},
{Ok},{flag0:={No};/*正常作動*/});
});
};
MESREAD(mes);
RTNFRM(rtn);